package fotoMultas.artifactFM;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Categorizador {

	private final Set<String> evasores = new HashSet<String>();

	private final Set<String> infractoresFrecuentes = new HashSet<String>();

	private final Set<String> inhabilitados = new HashSet<String>();

	private final Notificador notificadorDeEvasores = new NotificadorDeEvasores();

	public void categorizar(RegistroDeVehiculo infoDeVehiculo) {
		if (infoDeVehiculo.getSaldoDeMultas() > 1000) {
			this.evasores.add(infoDeVehiculo.getPatente());
		}
		if (infoDeVehiculo.getCantidadDeInfracciones() > 5) {
			this.infractoresFrecuentes.add(infoDeVehiculo.getPatente());
		}
		if (infoDeVehiculo.getPuntosDisponibles() <= 0) {
			this.inhabilitados.add(infoDeVehiculo.getPatente());
		}
	}

	public List<Notificador> getNotificadorPara(String patente) {
		List<Notificador> notificadores = new ArrayList<Notificador>();
		if (isEvasor(patente)) {
			notificadores.add(notificadorDeEvasores);
		}
		return notificadores;
	}

	private boolean isEvasor(String patente) {
		return this.evasores.contains(patente);
	}
}
